package com.sky.sky_common.context;

/**
 * BaseContext类用于管理线程局部变量(ThreadLocal)的上下文信息
 * 主要用于在多线程环境下存储和获取当前线程相关的ID信息
 */
public class BaseContext {
    // 使用ThreadLocal来存储每个线程独立的Long类型ID值
    private static ThreadLocal<Long> threadLocal = new ThreadLocal<>();

    /**
     * 设置当前线程的ID值
     * @param id 要设置的ID值，类型为Long
     */
    public static void setCurrentId(Long id){
        threadLocal.set(id);
    }

    /**
     * 获取当前线程的ID值
     * @return 当前线程存储的ID值，如果不存在则返回null
     */
    public static Long getCurrentId(){
        return threadLocal.get();
    }

    /**
     * 移除当前线程的ID值
     * 通常在线程使用完毕后调用，防止内存泄漏
     */
    public static void remove(){
        threadLocal.remove();
    }
}